Maintenance of shortcut keys in a mobile device

ABSTRACT

A device and method provide for maintenance of a shortcut key to an application accessible at the device. The method includes assigning a first application to a shortcut key at a device, wherein the shortcut key at the device is a button on the device; storing an identifier of the first application to a first file at the device; determining if the first application at the device assigned to the shortcut key remains executable at the device; if the first application is determined to be unexecutable at the device, assigning a second application to the shortcut key at the device, wherein an identifier of the second application is stored in a second file at the device, and further wherein the second application is executable at the device.

FIELD OF THE INVENTION

The present invention is related to the maintenance of shortcut keys.More specifically, the present invention relates to the maintenance ofapplication shortcut keys in a mobile device.

BACKGROUND OF THE INVENTION

In addition to processing voice calls from traditional wired andwireless phones, mobile communication devices now also communicate withother types of devices such as computers of all form factors, PersonalData Assistants (PDAs) or handheld PCs, Integrated Messaging Devices(IMD), etc. Additionally, communication devices have merged thecapabilities of cellular telephones, PDAs, IMDs, and computing devicesand now provide increasingly sophisticated applications. Theseapplications provide, for example, advanced telephony, various messagingservices such as e-mail, short messaging, multi-media messaging, instantmessaging and presence, Internet browsers, mobile wallets, imageviewing, video and image recording and viewing, etc. Thus, applicationsprovide the communication device with the ability to perform a widevariety of tasks. An application is an organized list of instructionsthat, when executed, cause the communication device to perform a userselected function. The term “execution” is the process of running anapplication or the carrying out of the operation called for by aninstruction.

A user executes an application by selecting the application for launch.Launching the application generally requires retrieving the executablefrom a permanent memory device and copying the executable to a temporarymemory device. The temporary memory device is generally some form ofrandom access memory (RAM). The RAM or system memory holds the operatingsystem and executing applications so that they can be reached quickly bythe computer's processor. The user may select the application using agraphical user interface and navigation tools to move among variousselections. However, communication devices generally are small andlightweight because the desire is for an easily portable device. As aresult, the display and the navigation tools are small and generallymore tedious to use. The devices generally include various keys orbuttons to facilitate input to the device. To simplify selection of anapplication for execution, one or more shortcut key may be defined. Ashortcut key is a single key press or combination of key presses thatcause a device to perform an action such as execution of an application.

In mobile devices, a menu for accessing applications is generallyprovided. Pressing an “Application” key opens the applications menu,where the user may browse using navigation tools and may select anapplication for execution. Applications are presented as a grid of itemsby default though the user can choose to use a list presentation. Whenthe application menu is opened, the numeric keys 1-9 can be used asshortcut keys to select an application. The keys are mapped directly tothe first nine icons in the application menu. The menu contains all ofthe installed applications. Additionally, an application may be selectedfor execution after assigning a shortcut key to the application.

Mobile devices have limited on-board memory for storing applications. AMulti-Media Card (MMC) is a postage stamp-sized flash memory card thatallows data to be saved onto it. MMCs are a means of exchanging databetween PDAs, phones, digital cameras, and other devices and can alsoact similar to a hard drive on a PC for the storage of data andprograms. Thus, MMCs provide a mechanism for executing applicationsstored on the MMC. The user inserts an MMC into the device and canaccess the application stored on the MMC. A user can plug different MMCsinto the device to execute different applications. “Hot swap” of an MMCcan be used in devices to enable removing and inserting of an MMCwithout powering off the device. As a result, the applications availablefor execution may change dynamically. Shortcut keys to the applicationmust recognize that the applications available have changed. Previousimplementations remember two applications in each memory card based on amemory card identifier and application information. However, thisrequires memory that may never be used again if the MMC is never usedagain. Additionally, such an implementation does not recognize that thesame application may be used from different MMCs wasting additionalmemory resources. As a further limitation, neither MMC may be insertedin the device resulting in a shortcut key that does not function. Whatis needed, therefore, is a method of defining an application for ashortcut key that avoids a shortcut definition that does not work.

SUMMARY OF THE INVENTION

An exemplary embodiment of the invention relates to a method formaintaining a shortcut key to an application accessible at a device. Themethod includes, but is not limited to, assigning a first application toa shortcut key at a device, wherein the shortcut key at the device is abutton on the device; storing an identifier of the first application toa first file at the device; determining if the first application at thedevice assigned to the shortcut key remains executable at the device; ifthe first application is determined to be unexecutable at the device,assigning a second application to the shortcut key at the device,wherein an identifier of the second application is stored in a secondfile at the device, and further wherein the second application isexecutable at the device

Another exemplary embodiment of the invention relates to one or morecomputer-readable media having computer-readable instructions storedthereon that, upon execution by a processor, cause the processor tomaintain a shortcut key to an application accessible at a device. Theinstructions are configured to assign a first application to a shortcutkey at a device, wherein the shortcut key at the device is a button onthe device; store an identifier of the first application to a first fileat the device; determine if the first application at the device assignedto the shortcut key remains executable at the device; if the firstapplication is determined to be unexecutable at the device, assign asecond application to the shortcut key at the device, wherein anidentifier of the second application is stored in a second file at thedevice, and further wherein the second application is executable at thedevice.

Still another exemplary embodiment of the invention relates to a devicefor maintaining a shortcut key to an application accessible at a device.The device includes a shortcut key, a first file, a second file, a firstapplication, a second application, a utility, a memory, and a processor.The shortcut key is a button on the device. The first application isremovable from the device. The utility includes, but is not limited to,computer code configured to assign the first application to the shortcutkey; to store an identifier of the first application to the first file;to determine if the first application assigned to the shortcut keyremains executable at the device; if the first application is determinedto be unexecutable at the device, to assign the second application tothe shortcut key, wherein an identifier of the second application isstored in the second file, and further wherein the second application isexecutable at the device. The memory stores the utility, the first file,and the second file. The processor couples to the memory and isconfigured to execute the utility.

Other principal features and advantages of the invention will becomeapparent to those skilled in the art upon review of the followingdrawings, the detailed description, and the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The exemplary embodiments will hereafter be described with reference tothe accompanying drawings, wherein like numerals will denote likeelements.

FIG. 1 is an overview diagram of a system in accordance with a exemplaryembodiment.

FIG. 2 is a block diagram of a device in accordance with a exemplaryembodiment.

FIG. 3 is an illustration of an input interface and a display of anexemplary device in accordance with FIG. 2.

FIG. 4 is an illustration of a five-way scroll button of the inputinterface of FIG. 3.

FIG. 5 is a flowchart in accordance with an exemplary embodiment.

DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

With reference to FIG. 1, the system 10 is comprised of multiplecommunication devices that can communicate through a network. The system10 may comprise any combination of wired or wireless networks including,but not limited to, a cellular telephone network, a wireless Local AreaNetwork (LAN), a Bluetooth personal area network, an Ethernet LAN, atoken ring LAN, a wide area network, the Internet, etc. The system 10may include both wired and wireless communication devices. Forexemplification, the system 10 shown in FIG. 1 includes a cellulartelephone network 11 and the Internet 28. Connectivity to the Internet28 may include, but is not limited to, long range wireless connections,short range wireless connections, and various wired connectionsincluding, but not limited to, telephone lines, cable lines, powerlines, and the like.

The exemplary communication devices of system 10 may include, but arenot limited to, a cellular telephone 12, a combination PDA and cellulartelephone 14, a PDA 16, an IMD 18, a desktop computer 20, and a notebookcomputer 22. The communication devices may be stationary or mobile aswhen carried by an individual who is moving. Some or all of thecommunication devices may send and receive calls and messages andcommunicate with service providers through a wireless connection 25 to abase station 24. The base station 24 may be connected to a networkserver 26 that allows communication between the cellular telephonenetwork 11 and the Internet 28. The system 10 may include additionalcommunication devices and communication devices of different types.

The communication devices may communicate using various transmissiontechnologies including, but not limited to, Code Division MultipleAccess (CDMA), Global System for Mobile Communications (GSM), UniversalMobile Telecommunications System (UMTS), Time Division Multiple Access(TDMA), Transmission Control Protocol/Internet Protocol (TCP/IP), ShortMessaging Service (SMS), Multimedia Messaging Service (MMS), e-mail,Instant Messaging Service (IMS), Bluetooth, IEEE 802.11, etc. Acommunication device may communicate using various media including, butnot limited to, radio, infrared, laser, cable connection, and the like.

In a exemplary embodiment, the device 30, as shown in FIG. 2, comprisesa display 32, a communication interface 34, an input interface 36, amemory 38, a memory interface 40, a processor 42, an application 44, anda utility 46. Different and additional components of device 30 may beincorporated into the device 30 and/or the system 10 as long as theutility 46 can be implemented in the device 30. Additionally, the device30 need not include all of the components depicted in FIG. 2.

The display 32 presents information to a user. The display 32 may be,but is not limited to, a thin film transistor (TFT) display, a lightemitting diode (LED) display, a Liquid Crystal Display (LCD), a CathodeRay Tube (CRT) display, etc.

The communication interface 34 provides an interface for receiving andtransmitting calls, messages, and any other information communicablebetween devices. The communication interface 34 may use varioustransmission technologies including, but not limited to, CDMA, GSM,UMTS, TDMA, TCP/IP, SMS, MMS, e-mail, IMS, Bluetooth, IEEE 802.11, andthe like to transfer content to and from the device. The communicationinterface 34 is optional.

The input interface 36 provides an interface for receiving informationfrom the user for entry into the device 30. The input interface 36 mayuse various input technologies including, but not limited to, akeyboard, a pen and touch screen, a mouse, a track ball, a touch screen,a keypad, one or more buttons, etc. to allow the user to enterinformation into the device 30 or to make selections. The inputinterface 36 may provide both an input and output interface. Forexample, a touch screen both allows user input and presents output tothe user. An exemplary device 50 is shown with reference to FIG. 3. Theexemplary device 50 includes the display 32, a numeric keypad 52, afive-way scroll button 54, a left soft key button 56, a right soft keybutton 58. The numeric keypad 52 includes 10 buttons labeled with thenumbers 1, 2, 3, 4, 5, 6, 7, 8, 9, and 0. One or more of the 10 buttonsmay further include a sequence of alphabetic characters. With referenceto FIG. 4, the five-way scroll button 54 includes an up depression point60, a left depression point 62, a down depression point 64, a rightdepression point 66, and a select depression point 68. The numerickeypad 52, the five-way scroll button 54, the left soft key button 56,and the right soft key button 58 are example components of an exampleinput interface 36.

The memory 38 is the electronic holding place for the operating system,the application 42, other applications, data, and/or the templateutility 44 so that the information can be reached quickly by thecomputer's processor 40. The terminal may have one or memory 38 usingdifferent memory technologies including, but not limited to, RandomAccess Memory (RAM), Read Only Memory (ROM), flash memory, and the like.The data in RAM is volatile meaning that it remains only as long as thedevice is turned on. When the device is turned off, RAM loses its data.The values stored in ROM are always there, whether the device is on ornot. For this reason, it is called non-volatile memory. Flash memory isa type of constantly-powered non-volatile memory that can be erased andreprogrammed in units of memory called blocks.

The memory interface 40 provides an interface for connecting an externalmemory to the device 30. For example, the memory interface may providean interface to an MMC. The processor 42 may retrieve a set ofinstructions such as the application 44 or the utility 46 from anon-volatile or a permanent memory and copy the instructions in anexecutable form to a temporary memory. The temporary memory is generallysome form of RAM. The term “execution” is the process of running anapplication or a utility or the carrying out of the operation called forby an instruction. The processor 42 executes an application or autility, meaning that it performs the operations called for by thatinstruction set. The processor 40 may be implemented as a specialpurpose computer, logic circuits, hardware circuits, etc. Thus, theprocessor 40 may be implemented in hardware, firmware, software, or anycombination of these methods. The processor 40 may execute, for example,the application 44 from either the memory 38 or through the memoryinterface 40.

The application 44 is an organized set of instructions that, whenexecuted, cause the communication device 30 to behave in a predeterminedmanner. The application 44 may include, but is not limited to, a wordprocessor application, a spreadsheet application, a presentation toolapplication, a video player/recorder application, an audioplayer/recorder application, an image editor/viewer application, anInternet browser application, a directory file system browserapplication, a messaging application such as an e-mail, an instantmessaging application, or a facsimile application, a schedulingapplication, a contacts application, etc. The instructions may bewritten using one or more programming languages, assembly languages,scripting languages, etc.

The application 44, the utility 46, the operating system, and otherapplications may be executed by the same processor 42. Alternatively,the application 44, the utility 46, the operating system, and otherapplications may be executed by different processors. The application44, the utility 46, the operating system, and other applications may bewritten in the same or different computer languages including, but notlimited to high level languages, scripting languages, assemblylanguages, etc.

FIG. 5 illustrates an operational flow of the utility 46 in accordancewith an exemplary embodiment. It is assumed in the example that thefive-way scroll button 54, the left soft key button 56, and the rightsoft key button 58 are implemented as a set of seven shortcut keys. Inan operation 70, the user of the device 30 assigns an application toeach shortcut key. These initial application selections may beidentified as “default” applications that generally permanently residein the device 30. To make the assignments, the user opens a list ofapplications residing in the device 30 including those applicationsexecuted from an MMC. Through the list, the user can change the“default” application assigned to each shortcut key. Thus, for example,the left soft key button 56 may have an application identified as“camera” assigned as the “default” application. At an operation 72, anidentifier of the “camera” application is stored in a first filepossibly denoted as the “default” file. At an operation 74, theidentifier of the “camera” application also is stored in a second filepossibly denoted as the “active” file. At an operation 76, theidentifier of the “camera” application also is stored in a third filepossibly denoted as the “requested” file.

At an operation 78, the user selects a second application, for example,downloaded from the Internet and installed in memory 38 using an SISfile. For example, the second application is a “dart” program. The useropens the list of applications residing in the device 30 including theinstalled “dart” program. Through the list, at an operation 80, the userchanges the “active” application assigned to the left soft key button 56to the “dart” program. At an operation 82, an identifier of the “dart”application is stored in the “active” file. At an operation 84, anidentifier of the “dart” application is also stored in the “requested”file and the identifier of the “camera” application is moved from the“requested” file to a fourth file possibly denoted as the “recent” file.

At an operation 86, the user selects a third application, for example,installed on an MMC executable through the memory interface 40. Forexample, the second application is a “game” program. The user opens thelist of applications residing in the device 30 including the “game”program. Through the list, at an operation 88, the user changes the“active” application assigned to the left soft key button 56 to the“game” program. At an operation 90, the “game” program identifier isalso stored in the “requested” file. At an operation 92, the identifierof the “game” application also is stored in the “active” file. At anoperation 94, the identifier of the “dart” application is moved from the“requested” file into the “recent” file.

At an operation 96, the MMC storing the “game” program is removed fromthe device 30, without rebooting the device 30. At an operation 98, theleft soft key button 56 is automatically assigned to the “dart” programidentifier stored in the “recent” file. At an operation 100, theidentifier of the “dart” application is stored in the “active” file. Theidentifier of the “game” application remains stored in the “requested”file.

At an operation 102, the MMC card having the “game” application isinserted in the device 30. At an operation 104, the left soft key button56 is automatically assigned to the “game” program identifier stored inthe “requested” file. At an operation 106, the identifier of the “game”application is stored in the “active” file. The identifier of the “dart”application remains stored in the “recent” file.

At an operation 108, the “dart” application is uninstalled from thedevice 30. At an operation 110, the MMC storing the “game” program isremoved from the device 30, without rebooting the device 30. At anoperation 112, the left soft key button 56 is automatically assigned tothe “camera” program identifier stored in the “default” file. At anoperation 114, the identifier of the “camera” application is stored inthe “active” file. The identifier of the “game” application remainsstored in the “requested” file and the identifier of the “dart”application remains stored in the “recent” file.

Thus, the device remembers two previously selected applications(“requested” as the most current selection and “recent” as the secondmost current selection) in case a memory hot swap occurs. The user canchange the applications to any of the shortcut keys. For example, thefive-way scroll button 54, the left soft key button 56, and the rightsoft key button 58 provide seven shortcut keys, and the device 30intelligently remembers the two last associations to each key includingthe applications executed from a memory inserted in the memory interface40.

Some services in the Module Object Request Broker (ORB) support amechanism that makes it possible to register Common ORB Architecture(CORBA) objects as event observers. Using observers removes the need todo frequent polling to identify the occurrence of an event. In anexemplary embodiment, these observers identify when an MMC is removed oran application is deleted from the device 30. When an event occurs, theservice in the Module ORB creates a callback that is routed to an eventhandler in the utility 46.

It is understood that the invention is not confined to the particularembodiments set forth herein as illustrative, but embraces all suchmodifications, combinations, and permutations as come within the scopeof the following claims. Thus, the description of the exemplaryembodiments is for purposes of illustration and not limitation.

1. A computerized method for maintaining a shortcut key to anapplication accessible at a device, the method comprising: assigning afirst application to a shortcut key at a device; storing an identifierof the first application to a first file at the device; in response todetecting a change in which applications are stored on the device,determining if the first application at the device assigned to theshortcut key remains executable at the device; and if the firstapplication is determined to be unexecutable at the device, assigning asecond application to the shortcut key at the device, wherein anidentifier of the second application is stored in a second file at thedevice, the second file indicating that the second application wasrecently selected by a user, wherein the second application isexecutable at the device, and wherein the second application is assignedbased upon the indication that the second application was recentlyselected by the user.
 2. The method of claim 1, further comprising:storing an identifier of a third application to a third file at thedevice; selecting the identifier of the third application from the thirdfile if neither the first application nor the second application isexecutable at the device; and assigning the third application to theshortcut key at the device if neither the first application nor thesecond application is executable at the device.
 3. The method of claim1, further comprising: if the first application is determined to beunexecutable at the device, assigning the first application to theshortcut key at the device if the first application subsequently isdetermined to be executable at the device.
 4. The method of claim 1,upon a request from a user to assign a third application to the shortcutkey, assigning the identifier of the third application to the first fileand assigning the identifier of the first application to the secondfile, wherein the third application is assigned to the shortcut key ifthe third application is executable at the device, or the firstapplication is assigned to the shortcut key if the third application isunexecutable at the device but the first application is executable atthe device.
 5. The method of claim 1, wherein the first applicationexecutes from a multi-media card.
 6. The method of claim 1, wherein theshortcut key comprises a scroll key.
 7. The method of claim 6, whereinthe scroll key comprises a five-way scroll key.
 8. The method of claim1, wherein the shortcut key is a button on the device but is not abutton included with a numeric keypad at the device.
 9. One or morecomputer-readable media having computer-readable instructions storedthereon that, upon execution by a processor, cause the processor tomaintain a shortcut key to an application accessible at a device, theinstructions configured to assign a first application to a shortcut keyat a device; store an identifier of the first application to a firstfile at the device; in response to detecting a change in whichapplications are stored on the device, determine if the firstapplication at the device assigned to the shortcut key remainsexecutable at the device; if the first application is determined to beunexecutable at the device, assign a second application to the shortcutkey at the device, wherein an identifier of the second application isstored in a second file at the device, the second file indicating thatthe second application was recently selected by a user, wherein thesecond application is executable at the device, and wherein the secondapplication is assigned based upon the indication that the secondapplication was recently selected by the user.
 10. The computer readablemedia of claim 9, further comprising computer readable instructionsconfigured for: storing an identifier of a third application to a thirdfile at the device; selecting the identifier of the third applicationfrom the third file if neither the first application nor the secondapplication is executable at the device; and assigning the thirdapplication to the short cut key at the device if neither the firstapplication nor the second application is executable at the device. 11.The computer readable media of claim 9, further comprising computerreadable instructions configured for: if the first application isdetermined to be unexecutable at the device, assigning the firstapplication to the shortcut key at the device if the first applicationsubsequently is determined to be executable at the device.
 12. Thecomputer readable media of claim 9, further comprising computer readableinstructions configured for upon a request from a user to assign a thirdapplication to the shortcut key, assigning the identifier of the thirdapplication to the first file, assigning the identifier of the firstapplication to the second file, wherein the third application isassigned to the shortcut key if the third application is executable atthe device, or the first application is assigned to the shortcut key ifthe third application is unexecutable at the device but the firstapplication is executable at the device.
 13. A device for maintaining ashortcut key to an application accessible at a device, the devicecomprising: a shortcut key, a first file; a second file; a firstapplication, wherein the first application is removable from the device;a second application; a utility, the utility comprising computer codeconfigured to: assign the first application to the shortcut key; storean identifier of the first application to the first file; in response todetecting a change in which applications are stored on the device,determine if the first application assigned to the shortcut key remainsexecutable at the device; and if the first application is determined tobe unexecutable at the device, assign the second application to theshortcut key, wherein an identifier of the second application is storedin the second file, the second file indicating that the secondapplication was recently selected by a user, wherein the secondapplication is executable at the device, and wherein the secondapplication is assigned based upon the indication that the secondapplication was recently selected by the user; a memory, wherein thememory stores the utility, the first file, and the second file; and aprocessor, the processor coupled to the memory and configured to executethe utility.
 14. The device of claim 13, wherein the utility furthercomprising computer code configured for: storing an identifier of athird application to a third file at the device; selecting theidentifier of the third application from the third file if neither thefirst application nor the second application is executable at thedevice; and assigning the third application to the shortcut key at thedevice if neither the first application nor the second application isexecutable at the device.
 15. The device of claim 13, wherein theutility further comprising computer code configured for: if the firstapplication is determined to be unexecutable at the device, assigningthe first application to the shortcut key at the device if the firstapplication subsequently is determined to be executable at the device.16. The device of claim 13, wherein the utility further comprisingcomputer code configured for upon a request from a user to assign athird application to the shortcut key, assigning the identifier of thethird application to the first file, assigning the identifier of thefirst application to the second file, wherein the third application isassigned to the shortcut key if the third application is executable atthe device, or the first application is assigned to the shortcut key ifthe third application is unexecutable at the device but the firstapplication is executable at the device.